/*
 * Planta.h
 *
 *  Created on: 19/10/2013
 *      Author: ezequiel
 */

#ifndef PLANTA_H_
#define PLANTA_H_
#include <vector>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/transform2.hpp>
#include <glm/gtx/projection.hpp>
#include <iostream>
#include <fstream>
#include "../Camara.h"
#include "../Dibujable.h"
#include <vector>
#include "../CurvaBessier.h"
#include "../CurvaSpline.h"
using namespace std;
class Planta : public Dibujable{
public:
	Planta();
	virtual ~Planta();
	void crearForma();
	void render(GLuint handle, glm::mat4* matModelo);
	void render(GLuint handle);
	void moverPlanta();
	void setearMovPlanta(float);
private:
	GLfloat* planta_vertex_buffer;
	GLfloat* planta_normal_buffer;
	GLfloat* planta_texture_buffer;
	GLuint* planta_index_buffer;
	unsigned int planta_vertex_buffer_size;
	unsigned int planta_normal_buffer_size;
	unsigned int planta_index_buffer_size;
	float pControl1, pControl2;
	bool mueveIzquierda;
	float tiempo;
//	GLfloat** planta_matrix_index_buffer;
	void indexarPuntos();
	void indexar();
	int alturaPlanta;
	void calcularNormales();
	glm::vec3 calcularNormal(glm::vec3 vec1, glm::vec3 vec2);
};

#endif /* PLANTA_H_ */
